package Common;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.border.BevelBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import Commande.CmdAfficher;
import Commande.CmdDecrease;
import Commande.CmdIncrease;
import Commande.CmdMarquerMesure;
import Commande.CmdMarquerTemps;
import Commande.CmdStart;
import Commande.CmdStop;
import Commande.Command;
import IHM.Afficheur;
import IHM.AfficheurImpl;
import Moteur.Controler;
import Moteur.MoteurImpl;
import Moteur.MoteurMetronome;


public class Metronome {
	

	private Controler controler;
	private MoteurMetronome moteur;
	private Command cmdDecrease, cmdIncrease, cmdMarquerMesure, cmdMarquerTemps, cmdStart, cmdStop,cmdAfficher;
	private Afficheur afficheur;
	
	
	public Metronome(){
		
		moteur = new MoteurImpl();
		controler = new Controler(moteur);
		cmdDecrease = new CmdDecrease(controler);
		cmdIncrease = new CmdIncrease(controler);
		cmdMarquerMesure = new CmdMarquerMesure(controler);
		cmdMarquerTemps = new CmdMarquerTemps(controler);
		cmdStart = new CmdStart(controler);
		cmdStop = new CmdStop(controler);
		//cmdAfficher = new CmdAfficher();
		moteur.setCmdMarquerMesure(cmdMarquerMesure);
		moteur.setCmdMarquerTemps(cmdMarquerTemps);
		
		afficheur = controler.getAfficheur();
		afficheur.setCmdStart(cmdStart);
		afficheur.setCmdStop(cmdStop);
		afficheur.setCmdIncrease(cmdIncrease);
		afficheur.setCmdDecrease(cmdDecrease);
		
		moteur.add(controler);
		afficheur.getMolette().add(controler);
	}
		

}
